package la.iok.hzsvn.lewin.movie.shopmovie.model;

import java.util.Objects;

/**
 * 玩家加入拼车参数。玩家自己主动加入拼车，比如扫描客服的二维码加入拼车
 */
public class PlayerJoinCarpoolParam {
    /**
     * 拼车id
     */
    private Long carpoolId;
    /**
     * 引导者id
     */
    private Long guideId;
    /**
     * 是否确认添加。1：确认添加，此时用户在其他拼车也添加。0或者无值：如果用户在其他拼车则不添加，需要前端给操作者提示后让用户选择是否确认添加
     */
    private Integer confirm;

    public Long getCarpoolId() {
        return carpoolId;
    }

    public void setCarpoolId(Long carpoolId) {
        this.carpoolId = carpoolId;
    }

    public Long getGuideId() {
        return guideId;
    }

    public void setGuideId(Long guideId) {
        this.guideId = guideId;
    }

    public Integer getConfirm() {
        return confirm;
    }

    public void setConfirm(Integer confirm) {
        this.confirm = confirm;
    }

    /**
     * 是否确认在其他拼车也添加。如果是确认添加则添加用户到拼车，否则需要提示操作者
     * @return 确认添加其他拼车中的用户则返回true,否则false
     */
    public boolean confirmJoin(){
        return confirm != null && confirm == 1;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        PlayerJoinCarpoolParam param = (PlayerJoinCarpoolParam) o;
        return Objects.equals(carpoolId, param.carpoolId) && Objects.equals(guideId, param.guideId) && Objects.equals(confirm, param.confirm);
    }

    @Override
    public int hashCode() {
        return Objects.hash(carpoolId, guideId, confirm);
    }
}
